Modern computer systems, both personal computer (PC)-based as well as newer form factors such as tablet computers, netbooks, mobile Internet devices and so forth typically include multiple semiconductor components, including various types of processing circuitry, memories, graphics processing and so forth. In addition, over time many semiconductor components such as processors and certain components have incorporated much functionality that used to be handled by discrete devices. For example, various peripheral functionality such as interrupt control, network interfacing, interface circuitry such as chipsets, memory controller functionality, and so forth can often now be implemented in a single semiconductor component, e.g., within a multicore processor.
In addition, a given computer system can have various hardware devices such as other semiconductor components that are present within the system via add-in cards such as advanced graphics processing cards, networking cards, and other peripheral devices. As a result, these various components, both external and internal to semiconductor devices can include their own processing circuitry such as microcontrollers or so forth to execute intended operations according to a firmware or other supervisory software. This firmware is generally not accessible to security monitoring software such as antivirus software. As a result, malicious software can persist as firmware within such hardware devices, out of sight of security monitoring software. Accordingly, it is possible for certain threats to compromise a computer system via such firmware.
Typically, it is simply assumed that the executing firmware has not been compromised or otherwise changed from what was originally loaded/bootstrapped into the microcontroller. If there is ever any runtime concern that the firmware could have been changed, then the typical practice is to perform a device reset to cause the microcontroller to flush the current executing firmware and reload the bootstrap image.